<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Student extends CI_Controller {
	public function __construct(){
		parent::__construct();
		$this->load->model('model_job');
		$this->load->model('model_user');
		$this->load->model('model_record');
	}

	public function apply($id_cv, $id_sv){
		$mssv = $this->model_user->get_student_name($id_sv)['mssv'];
		if ($this->model_user->apply($id_cv, $mssv)) {
			if($this->model_job->check_report($this->session->userdata('id_dn'), $this->session->userdata('bd'), $this->session->userdata('kt'))){
				$this->model_job->add_report_candidate($this->session->userdata('id_dn'), $this->session->userdata('bd'), $this->session->userdata('kt'));
			}
			$this->session->unset_userdata('bd');
			$this->session->unset_userdata('kt');
			$this->session->unset_userdata('id_dn');
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
	 				 	 alert('Ứng tuyển thành công!');
	 					 window.location.href ='".base_url()."trang-chu';
	 					 </script>";
		}else {
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
	 				 	 alert('Lỗi trong quá trình cập nhật database!');
	 					 window.location.href ='".base_url()."trang-chu';
	 					 </script>";
		}
	}

	public function list_job_apply(){
		$data['info'] = $this->model_job->list_job_apply();
		$data['title'] = "Danh sách các công việc đã ứng tuyển";
		$data['subview'] = "users/list_job_apply";
		$this->load->view('main', $data);
	}

	public function confirm_job($id_cv, $mssv, $id_dn, $bd, $kt){
		if($this->model_job->check_confirm($id_cv, $mssv)){
			if ($this->model_job->confirm_job($id_cv, $mssv)) {
				if ($this->model_job->cancel_another_job($id_cv)) {
					if($this->model_job->check_report($id_dn, $bd, $kt)){
						$this->model_job->add_report_confirm($id_dn, $bd, $kt);
					}
					// $this->model_user->update_date_start($mssv);
					redirect(base_url()."student/list_job_apply");
				}else{
					header('Content-Type: text/html; charset=utf-8');
					echo "<script type='text/javascript'> 
			 				 	 alert('Lỗi trong quá trình cập nhật database!');
			 					 window.location.href ='".base_url()."student/list_job_apply';
			 					 </script>";
				}
			}else{
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
		 				 	 alert('Lỗi trong quá trình cập nhật database!');
		 					 window.location.href ='".base_url()."student/list_job_apply';
		 					 </script>";
			}
		}else{
			header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
		 				 	 alert('Bạn không thể xác nhận thực tập khi chưa vượt qua bài phỏng vấn!');
		 					 window.location.href ='".base_url()."student/list_job_apply';
		 					 </script>";
		}
	}

	public function cancel_confirm_job($id_cv, $mssv, $id_dn, $bd, $kt){
		if($this->model_job->cancel_confirm_job($id_cv, $mssv)){
			if($this->model_job->check_report($id_dn, $bd, $kt)){
				$this->model_job->delete_report_confirm($id_dn, $bd, $kt);
			}
			redirect(base_url()."student/list_job_apply");
		}else {
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
	 				 	 alert('Lỗi trong quá trình cập nhật database!');
	 					 window.location.href ='".base_url()."student/list_job_apply';
	 					 </script>";
		}
	}

	public function delete_job($id_cv, $mssv){
		if($this->model_job->delete_candidate($id_cv, $mssv)){
			redirect(base_url()."student/list_job_apply");
		}else {
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
	 				 	 alert('Lỗi trong quá trình cập nhật database!');
	 					 window.location.href ='".base_url()."student/list_job_apply';
	 					 </script>";
		}
	}

	public function create_record(){
		$data['title'] = "Tạo hồ sơ";
		$data['subview'] = "users/create_record";
		$this->load->view('main', $data);
	}

	public function save_record(){
		$this->form_validation->set_rules('hinhthuc_tt', 'hinh thuc', 'trim|required');
		$this->form_validation->set_rules('time_tn', 'Thời gian tốt nghiệp', 'required|callback_check_date');
		if($this->form_validation->run() == FALSE){
			$data['title'] = "Tạo hồ sơ";
			$data['subview'] = "users/create_record";
			$this->load->view('main', $data);
		}else{
			$luong = $this->input->post('luong');
			if($luong == "Cụ thể"){
				$luong = "Từ ".$this->input->post('bd')." đến ".$this->input->post('kt')." ".$this->input->post('loai_tien');
			}
			$this->session->set_userdata('luong',$luong);
			$this->session->set_userdata('mssv',$this->model_user->get_student_name($this->session->userdata('id'))['mssv']);
			if($this->model_record->add_record())
			{
				$this->session->unset_userdata('luong');
				$this->session->unset_userdata('mssv');
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
						 	 alert('Tạo hồ sơ thành công!');
							 window.location.href ='".base_url()."trang-chu';
							 </script>";
			}else {
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
						 	 alert('Lỗi trong quá trình cập nhật database!');
							 window.location.href ='".base_url()."trang-chu';
							 </script>";
			}
		}
	}

	public function doupload() {
		$valid_formats = array("pdf", "docx", "doc");
		if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
		{
			$name = $_FILES['photoimg']['name'];
			$size = $_FILES['photoimg']['size'];
			if(strlen($name))
				{
					if(file_exists("download/".$name)) echo "File này đã tồn tại. Xin vui lòng chọn hình khác hoặc đặt tên khác!";
					else
					{
						list($txt, $ext) = explode(".", $name);
						if(in_array($ext,$valid_formats))
						{
						if($size<(1024*1024)*5)
							{
								$tmp = $_FILES['photoimg']['tmp_name'];
								if(move_uploaded_file($tmp,'download/'.$name))
									{								
										$this->session->set_flashdata('message', base_url().'download/'.$name);
										echo "Thành công";
									}
								else
									echo "Lỗi";
							}
							else
							echo "Kích thước tối đa là 5MB";					
							}
							else
							echo "Không đúng định dạng file!";	
					}
				}
				
			else
				echo "Xin vui lòng chọn file đính kèm nếu cần...!";
			exit;
		}
	}

	public function check_date(){
		$today = date("Y-m-d");
		$date = $this->input->post('time_tn');
		if(strtotime($today) < strtotime($date)){
			return TRUE;
		}else{
			$this->form_validation->set_message('check_date', 'Thời gian không hợp lệ');
			return FALSE;
		}
	}

	public function list_record(){
		$mssv = $this->model_user->get_student_name($this->session->userdata('id'))['mssv'];
		$data['info'] = $this->model_record->list_record($mssv);
		$data['title'] = "Danh sách hồ sơ";
		$data['subview'] = "users/list_record";
		$this->load->view('main', $data);
	}

	public function active_record($id_hs){
		if($this->model_record->active_record($id_hs)){
			$email = explode("@", $this->session->userdata('email'));
			$mssv = $email[0];
			if ($this->model_record->deactive_another_record($id_hs, $mssv)) {
				redirect(base_url()."student/list_record");
			}else{
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
						 	 alert('Lỗi trong quá trình cập nhật database!');
							 window.location.href ='".base_url()."student/list_record';
							 </script>";
			}
		}else{
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
					 	 alert('Lỗi trong quá trình cập nhật database!');
						 window.location.href ='".base_url()."student/list_record';
						 </script>";
		}
	}

	public function deactive_record($id_hs){
		if ($this->model_record->deactive_record($id_hs)) {
			redirect(base_url()."student/list_record");
		}else{
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
					 	 alert('Lỗi trong quá trình cập nhật database!');
						 window.location.href ='".base_url()."student/list_record';
						 </script>";
		}
	}

	public function record_detail($id_hs){
		$data['info'] = $this->model_record->record_detail($id_hs);
		$data['title'] = "Chi tiết hồ sơ";
		$data['subview'] = "users/record_detail";
		$this->load->view('main', $data);
	}

	public function show_edit_record($id_hs){
		$data['info'] = $this->model_record->record_detail($id_hs);
		$data['title'] = "Sửa hồ sơ";
		$data['subview'] = "users/edit_record";
		$this->load->view('main', $data);
	}

	public function edit_record($id_hs){
		$this->form_validation->set_rules('hinhthuc_tt', 'hinh thuc', 'trim|required');
		$this->form_validation->set_rules('time_tn', 'Thời gian tốt nghiệp', 'required|callback_check_date');
		if($this->form_validation->run() == FALSE){
			$data['info'] = $this->model_record->record_detail($id_hs);
			$data['title'] = "Sửa hồ sơ";
			$data['subview'] = "users/edit_record";
			$this->load->view('main', $data);
		}else{
			$luong = $this->input->post('luong');
			if($luong == "Cụ thể"){
				$luong = "Từ ".$this->input->post('bd')." đến ".$this->input->post('kt')." ".$this->input->post('loai_tien');
			}
			$this->session->set_userdata('luong',$luong);
			$this->session->set_userdata('mssv',$this->model_user->get_student_name($this->session->userdata('id'))['mssv']);
			if($this->model_record->edit_record($id_hs))
			{
				$this->session->unset_userdata('luong');
				$this->session->unset_userdata('mssv');
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
						 	 alert('Cập nhật hồ sơ thành công!');
							 window.location.href ='".base_url()."student/list_record';
							 </script>";
			}else {
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
						 	 alert('Lỗi trong quá trình cập nhật database!');
							 window.location.href ='".base_url()."student/list_record';
							 </script>";
			}
		}
	}

	public function delete_record($id_hs){
		if ($this->model_record->delete_record($id_hs)) {
			redirect(base_url()."student/list_record");
		}else{
			header('Content-Type: text/html; charset=utf-8');
			echo "<script type='text/javascript'> 
					 	 alert('Lỗi trong quá trình cập nhật database!');
						 window.location.href ='".base_url()."student/list_record';
						 </script>";
		}
	}

	public function show_update_info(){
		$data['info'] = $this->model_user->get_student_name($this->session->userdata('id'));
		$data['title'] = "Cập nhật tài khoản";
		$data['subview'] = "users/student_update_info";
		$this->load->view('main', $data);
	}

	public function update_info(){
		$this->form_validation->set_rules('birthday', 'Birthday', 'required|callback_check_age');
		$this->form_validation->set_rules('phone', 'Phone Number', 'trim|required|min_length[7]|numeric');

		if($this->form_validation->run() == FALSE){
			$data['info'] = $this->model_user->get_student_name($this->session->userdata('id'));
			$data['title'] = "Cập nhật tài khoản";
			$data['subview'] = "users/student_update_info";
			$this->load->view('main', $data);
		}else{
			if($this->session->flashdata('message')){
				$this->session->set_userdata('avatar', $this->session->flashdata('message'));
			}
			if($this->model_user->update_student_info()){
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
							 	 alert('Cập nhật thông tin tài khoản thành công!');
								 window.location.href ='".base_url()."trang-chu';
								 </script>";
			}else{
				header('Content-Type: text/html; charset=utf-8');
				echo "<script type='text/javascript'> 
							 	 alert('Lỗi trong quá trình cập nhật database!');
								 window.location.href ='".base_url()."student/show_update_info';
								 </script>";
			}
		}
	}

	public function update_user(){
		$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[6]|md5');
        $this->form_validation->set_rules('cpassword', 'Password Confirmation', 'trim|required|min_length[6]|matches[password]');
        if($this->form_validation->run() == FALSE){
        	redirect(base_url()."student/show_update_info");
        }else{
        	if($this->model_user->update_user()){
        		header('Content-Type: text/html; charset=utf-8');
        		echo "<script type='text/javascript'> 
							 	 alert('Cập nhật tài khoản thành công!');
								 window.location.href ='".base_url()."trang-chu';
								 </script>";
        	}else{
        		redirect(base_url()."student/show_update_info");
        	}
        }
	}

	public function check_age() {
		$age = date_diff(date_create($this->input->post('birthday')), date_create('now'))->y;
		if($age >= 18) return TRUE;
			else{
				$this->form_validation->set_message('check_age', 'Bạn chưa đủ tuổi');
				return FALSE;
			}
	}

	public function download($file){
		$this->load->helper('download');
		$data = file_get_contents(base_url().'download/'.$file);
		$name = $file;
		force_download($name, $data);
	}
}